(1) اطلاعات اساسی در مورد password چیست؟ اکثر accountها روی سیستمهای کامپیوتری معمولا متدهای خاصی از دسترسی محدود به آن account دارند. هر زمان که قصد دسترسی به یک سیستم داشته باشید باید یک ID صحیح را وارد کرده و با وارد کردن password وارد account خود شوید. اکثر سیستمها پسوردها را نشان نمیدهند و بجای کاراکترهای واقعی از ستاره یا نقطه استفاده میکنند. روی اکثر سیستمها پسورد از میان چندین الگوریتم عبور داده میشود تا بصورت hash (رمز شده) درآید. hash معمولا بیشتر از کاراکترهائی است که بعنوان پسورد وارد شدهاند. معمولا hash بصورت one-way (غیرقابل برگشت) درست میشود یعنی با هیچ الگوریتمی نمیتوان hash را به متن اصلی تبدیل کرد. اکثر سیستمها در هنگام authentication (تعیین هویت) پسوردهای ذخیره شده را آشکار نمیکنند و آنها از ابتدا متن وارد شده را hash کرده و با hashه ذخیره شده مقایسه میکنند. در رمز نویسی بعضی از الگوریتمها بهتر از الگوریتمهای دیگر برای ساختن one-way hash هستند. در این سری مقالات توجه ما روی سیستم عاملهای NT, Netware, Unix خواهد بود. که همگی از الگوریتم تقریبا یکسانی استفاده میکنند. برای crack کردن یک پسورد لازم است شما یک کپی از hash که روی سرور ذخیره شده است بگیرید و بعد الگوریتم را بکار بگیرید تا hash شده متنهای شما را تولید کند تا زمانیکه hash شما با hashه سرور یکسان شود. در این هنگام کلمهای که شما برای تولید hash بکار بردهاید همان پسورد سیستم مورد حمله شما میباشد. چون انجام این کار بروش دستی زمان زیادی میبرد از اتوماسیون استفاده میشود. نرمافزارهای رایگان زیادی در اینترنت برای شکستن پسوردهای سیستم عاملهای مورد مطالعه ما وجود دارد. 3 (2) چرا از hashها محافظت میکنیم؟ اگر hashهای غیر قابل برگشت نه خود پسوردها بلکه مشتق آنها هستند پس چرا از آنها محافظت میکنیم؟ چون الگوریتمی که آنها را تولید میکند شناخته شده است. یک هکر میتواند با برنامههای مخصوص این کار بسادگی پسوردهای ممکن را رمز کرده و آنها را با پسوردهای داخل hash مقایسه کند تا زمانیکه پسورد را پیدا کند. دو روش برای شکستن پسورد بکار برده میشود: روش Dictionary و روش Brute Force. معمولا hashها در قسمتی از سیستم ذخیره میشوند که امینت ویژهای دارد تا دسترسی کراکرهای مستعد به آن محدود شود. 3 (3) منظور از شکستن پسورد بروش Dictionary چیست؟ یک برنامه شکننده پسورد بسادگی لیستی از لغات dictionary را میگیرد و هر لحظه یک لغت را رمز کرده و با hashه سیستم مقایسه میکند تا زمانیکه که هر دو hash برابر شوند و پسورد شکسته شود. در این هنگام لغتی از dictionary که آزمایش شده است همان پسورد سیستم است. بعضی از این برنامهها میتوانند با بکارگیری فیلترهای مخصوص کلمات را دستکاری کنند. قواعد این فیلترها به شما اجازه میدهد مثلا (rnazari) را به (RNazAr1) تغییر دهید. استفاده از این فیلترها باعث میشوند که شما بتوانید از یک لیست کوچک لیستی بزرگ ساخته و آزمایش کنید. بهترین نوع شناخته شده از این فیلترهای خارقالعاده در برنامههای Crack که برای محیط Unix طراحی شدهاند موجود است. قواعد این فیلترها کلا شناخته شده و بتازگی در برنامههایی که برای NT طراحی شده اند گنجانیده شده است. اگر برنامه Crackerه شما چنین قابلیتی ندارد شما میتوانید با برنامه Therion"s Password Utility که برای محیط DOS طراحی شده است میتواند با روشهای زیادی یک لیست کوچک از کلمات را از شما گرفته و به یک لیست خیلی بزرگ تبدیل کند و سپس شما میتوانید آنرا بکار بگیرید. 3 (4) منظور از شکستن پسورد بروش Brute Force چیست؟ یک برنامه Cracker بروش Brute Force بسادگی و با قواعدی خاص لغاتی را بصورت اتوماتیک ساخته و با hashه مقایسه میکند. فرق این روش با روش قبلی در این است که تمام لغات بصورت اتوماتیک ساخته میشوند. از دیدگاه یک هکر این روش خیلی وقت گیر بوده و قسمت زیادی از قدرت CPU را هدر میدهد. خیلی از برنامههای این حملات تنظیماتی را به شما میدهند تا با این تنظیمات در زمان صرف شده و قدرت CPU صرفهجویی کنید. مثلا میتوانید طول پسورد ساخته شده یا کاراکترهایی که برای ساختن لغات بکار برده خواهند شد را معین کنید. 3 (5) کدام روش برای Crack کردن بهترین است؟ جواب این سوال مرتبط است با: هدف شما، برنامه Crackی که بکار میبرید، و سیستم عامل سرور هدف. چند فایل dictionary با طولهای متفاوت مثلا 4، 5، 6، 7، 8، ... از اینترنت بگیرید بعد این فایلها را گسترش داده و فیلترهایی روی آنها اعمال کنید تا هرچه جامعتر شود. و در اکثر موارد انتخاب نخستتان روش dictionary باشد اگر با این همه لغات بازهم نتوانستید یک hash را بشکنید. دیگر متاسفانه باید از روش Brute Force استفاده کرده و سیستم خود را چند روزی مشغول این کار کنید. 3 (6) منظور از Salt (نمک) چیست؟ برای بالا بردن امنیت پسوردها بعضی از الگوریتمها از Salt استفاده میکنند این عمل باعث میشود پیچیدگی پسورد زیادتر و شکستن آن سختتر شود. Saltها معمولا 2 تا 8 بایت درازا دارند و با الگوریتم خود باعث میشوند که ابهام one-way hash بیشتر شود. اکثر سیستم عاملها این روش را پوشش میدهند بجز NT. اگر دو پسورد عین هم با این الگوریتم hash شود hashها عین هم نخواهند بود و در این روش 4096 نوع hash از یک پسورد میتوان ساخت و کار شکستن نیز به همان اندازه سختتر خواهد شد. با همه این احوال Salt نیز امنیت صد در صد پسورد را گارانتی نمیکند. 3 (7) حمله برای شکستن پسورد چه خطراتی دارد؟ یکی از خطرات این حمله محکوم بودن شما از نظر قوانین است البته فعلا در کشور ما چنین قانونی وجود ندارد و فقط در شرایطی شما را دستگیر میکنند که شما به یکی از سرورهای دولتی، اداری یا بانکی حمله کرده باشید. البته اگر نوع اشتراک شما کارتی نباشد و شماره تلفنتون را مخفی نکرده باشین در غیر اینصورت فکر نکنم کسی بتواند شما را ردیابی کند. اگر شما نتوانید فایل hash را کپی کنید شاید دلتان بخواهد که بصورت remote این حمله را پایهریزی کنید که در اینصورت یک اشکالی پیش خواهد آمد. اکثر سرورها طوری تنظیم میشوند که اگر شما چندین بار پسورد را اشتباهی وارد کردید دسترسی آن account را برای مدت زمانی که از پیش تعریف شده است قطع میکنند. اما این روش خود یک ایرادی دارد و آن اینکه سرور در این حالت دچار حمله (DoS (Denial-of-Service میشود